<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>景区地图</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <link rel="stylesheet" href="styles.css">
    <style>
        .map-container {
            position: relative;
            height: calc(100vh - 130px);
            overflow: hidden;
            background-color: #eee;
        }
        .map-viewport {
            position: relative;
            width: 100%;
            height: 100%;
            background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"%3E%3Crect width="1000" height="1000" fill="%23E8F5E9"/%3E%3Cpath d="M100,400 L300,300 L500,350 L700,250 L900,300 L900,900 L100,900 Z" fill="%2381C784"/%3E%3Cpath d="M300,300 L330,270 L360,310 L390,280 L420,320 L450,290 L480,330 L500,350" fill="none" stroke="%23558B2F" stroke-width="5"/%3E%3Cpath d="M400,600 C500,550 600,650 700,600" stroke="%232196F3" stroke-width="8" stroke-linecap="round"/%3E%3Ccircle cx="200" cy="500" r="20" fill="%23FF5722"/%3E%3Ccircle cx="600" cy="400" r="20" fill="%23FF5722"/%3E%3Ccircle cx="800" cy="600" r="20" fill="%23FF5722"/%3E%3C/svg%3E');
            background-size: cover;
            background-position: center;
        }
        .map-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
        }
        .map-point {
            position: absolute;
            width: 32px;
            height: 32px;
            margin-left: -16px;
            margin-top: -32px;
            pointer-events: auto;
            cursor: pointer;
        }
        .map-point-icon {
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 16px;
            background-color: white;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
            color: var(--primary-color);
            animation: pulse 2s infinite;
        }
        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(1.1); }
            100% { transform: scale(1); }
        }
        .map-point-label {
            position: absolute;
            top: -24px;
            left: 50%;
            transform: translateX(-50%);
            background-color: rgba(0,0,0,0.7);
            color: white;
            padding: 2px 8px;
            border-radius: 10px;
            font-size: 12px;
            white-space: nowrap;
        }
        .map-controls {
            position: absolute;
            bottom: 20px;
            right: 20px;
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
        .map-button {
            width: 40px;
            height: 40px;
            border-radius: 20px;
            background-color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
        }
        .map-search {
            position: absolute;
            top: 16px;
            left: 16px;
            right: 16px;
            background-color: white;
            border-radius: 24px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
            display: flex;
            align-items: center;
            padding: 0 16px;
        }
        .map-search input {
            flex: 1;
            padding: 12px 0;
            border: none;
            outline: none;
            font-size: 14px;
        }
        .map-search-icon {
            color: #999;
            margin-right: 10px;
        }
        .map-layers {
            position: absolute;
            top: 80px;
            left: 16px;
            background-color: white;
            border-radius: 12px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
            overflow: hidden;
        }
        .map-layer {
            padding: 8px 16px;
            display: flex;
            align-items: center;
            border-bottom: 1px solid #eee;
            font-size: 14px;
        }
        .map-layer:last-child {
            border-bottom: none;
        }
        .map-layer.active {
            background-color: #e0f2f1;
            color: var(--primary-color);
        }
        .map-layer-icon {
            margin-right: 8px;
        }
        .map-bottom-card {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            background-color: white;
            border-radius: 16px 16px 0 0;
            box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
            padding: 16px;
            transform: translateY(85%);
            transition: transform 0.3s ease;
        }
        .map-bottom-card.active {
            transform: translateY(0);
        }
        .map-card-handle {
            width: 40px;
            height: 5px;
            background-color: #ddd;
            border-radius: 3px;
            margin: 0 auto 16px;
        }
        .spirit-info-header {
            display: flex;
            align-items: center;
            margin-bottom: 16px;
        }
        .spirit-info-avatar {
            width: 50px;
            height: 50px;
            border-radius: 25px;
            margin-right: 16px;
            overflow: hidden;
            flex-shrink: 0;
        }
        .spirit-info-avatar img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .spirit-info-content {
            flex: 1;
        }
        .spirit-info-name {
            font-weight: bold;
            font-size: 18px;
        }
        .spirit-info-type {
            color: #666;
            font-size: 14px;
        }
        .spirit-info-actions {
            display: flex;
            gap: 10px;
        }
        .spirit-info-badge {
            display: inline-block;
            padding: 4px 8px;
            border-radius: 12px;
            background-color: #e0f2f1;
            color: var(--primary-color);
            font-size: 12px;
            margin-right: 6px;
        }
        .location-info {
            display: flex;
            align-items: center;
            color: #666;
            font-size: 14px;
            margin-top: 8px;
        }
        .location-info i {
            margin-right: 6px;
            color: #F44336;
        }
    </style>
</head>
<body>
    <div class="app-header">
        <div class="header-title">景区地图</div>
        <div class="header-actions">
            <i class="fas fa-compass"></i>
        </div>
    </div>

    <div class="map-container">
        <div class="map-viewport"></div>
        
        <div class="map-overlay">
            <!-- 地图标记点 -->
            <div class="map-point" style="left: 35%; top: 40%;">
                <div class="map-point-icon">
                    <i class="fas fa-mountain"></i>
                </div>
                <div class="map-point-label">天门山</div>
            </div>
            <div class="map-point" style="left: 65%; top: 30%;">
                <div class="map-point-icon">
                    <i class="fas fa-water"></i>
                </div>
                <div class="map-point-label">金鞭溪</div>
            </div>
            <div class="map-point" style="left: 75%; top: 55%;">
                <div class="map-point-icon">
                    <i class="fas fa-tree"></i>
                </div>
                <div class="map-point-label">黄龙洞</div>
            </div>
            <div class="map-point" style="left: 20%; top: 50%;">
                <div class="map-point-icon" style="background-color: #EF6C00; color: white;">
                    <i class="fas fa-dragon"></i>
                </div>
                <div class="map-point-label">云灵</div>
            </div>
            
            <!-- 地图搜索框 -->
            <div class="map-search">
                <div class="map-search-icon">
                    <i class="fas fa-search"></i>
                </div>
                <input type="text" placeholder="搜索景点、精灵、设施...">
            </div>
            
            <!-- 地图图层选择 -->
            <div class="map-layers">
                <div class="map-layer active">
                    <i class="fas fa-map map-layer-icon"></i>
                    <span>标准地图</span>
                </div>
                <div class="map-layer">
                    <i class="fas fa-dragon map-layer-icon"></i>
                    <span>精灵分布</span>
                </div>
                <div class="map-layer">
                    <i class="fas fa-route map-layer-icon"></i>
                    <span>游览路线</span>
                </div>
                <div class="map-layer">
                    <i class="fas fa-toilet map-layer-icon"></i>
                    <span>设施服务</span>
                </div>
            </div>
            
            <!-- 地图控制按钮 -->
            <div class="map-controls">
                <div class="map-button">
                    <i class="fas fa-plus"></i>
                </div>
                <div class="map-button">
                    <i class="fas fa-minus"></i>
                </div>
                <div class="map-button">
                    <i class="fas fa-location-arrow"></i>
                </div>
            </div>
            
            <!-- 精灵信息卡片 -->
            <div class="map-bottom-card active">
                <div class="map-card-handle"></div>
                <div class="spirit-info-header">
                    <div class="spirit-info-avatar">
                        <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%234CAF50'/%3E%3Cpath d='M30,30 L70,70 M70,30 L30,70' stroke='white' stroke-width='5'/%3E%3C/svg%3E" alt="云灵">
                    </div>
                    <div class="spirit-info-content">
                        <div class="spirit-info-name">云灵</div>
                        <div class="spirit-info-type">天门云使 · 虚拟导游</div>
                        <div class="location-info">
                            <i class="fas fa-map-marker-alt"></i>
                            <span>当前位置：天门山游客中心</span>
                        </div>
                    </div>
                    <div class="spirit-info-actions">
                        <i class="fas fa-share-alt"></i>
                        <i class="fas fa-heart"></i>
                    </div>
                </div>
                <div>
                    <span class="spirit-info-badge"><i class="fas fa-cloud"></i> 操控云雾</span>
                    <span class="spirit-info-badge"><i class="fas fa-key"></i> 天门钥匙</span>
                    <span class="spirit-info-badge"><i class="fas fa-comments"></i> 方言翻译</span>
                </div>
                <div class="flex justify-between mt-2">
                    <button class="btn btn-primary">
                        <i class="fas fa-comment-alt mr-1"></i> 对话
                    </button>
                    <button class="btn btn-secondary">
                        <i class="fas fa-camera mr-1"></i> AR互动
                    </button>
                </div>
            </div>
        </div>
    </div>

    <div class="bottom-nav">
        <div class="nav-item">
            <i class="fas fa-home"></i>
            <span>首页</span>
        </div>
        <div class="nav-item active">
            <i class="fas fa-map-marked-alt"></i>
            <span>地图</span>
        </div>
        <div class="nav-item">
            <i class="fas fa-dragon"></i>
            <span>精灵</span>
        </div>
        <div class="nav-item">
            <i class="fas fa-robot"></i>
            <span>导游</span>
        </div>
        <div class="nav-item">
            <i class="fas fa-user"></i>
            <span>我的</span>
        </div>
    </div>
</body>
</html> 